<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: outofcore/include/pcl/outofcore/octree_base.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('outofcore_2include_2pcl_2outofcore_2octree__base_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">octree_base.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Software License Agreement (BSD License)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Point Cloud Library (PCL) - www.pointclouds.org</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *  Copyright (c) 2010-2012, Willow Garage, Inc.</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *  Copyright (c) 2012, Urban Robotics, Inc.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *  All rights reserved.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *  Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *  modification, are permitted provided that the following conditions</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *  are met:</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *   * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *     notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *   * Redistributions in binary form must reproduce the above</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *     copyright notice, this list of conditions and the following</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> *     disclaimer in the documentation and/or other materials provided</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *     with the distribution.</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> *   * Neither the name of Willow Garage, Inc. nor the names of its</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *     contributors may be used to endorse or promote products derived</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *     from this software without specific prior written permission.</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> *  &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"> *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"> *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> *  POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment"> *  $Id$</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifndef PCL_OUTOFCORE_OUTOFCOREOCTREEBASE_H_</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define PCL_OUTOFCORE_OUTOFCOREOCTREEBASE_H_</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/boost.h&gt;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;pcl/common/io.h&gt;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">//outofcore classes</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/octree_base_node.h&gt;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/octree_disk_container.h&gt;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/octree_ram_container.h&gt;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">//outofcore iterators</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/outofcore_iterator_base.h&gt;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/outofcore_breadth_first_iterator.h&gt;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/outofcore_depth_first_iterator.h&gt;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/impl/outofcore_breadth_first_iterator.hpp&gt;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/impl/outofcore_depth_first_iterator.hpp&gt;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">//outofcore metadata</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/metadata.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#include &lt;pcl/outofcore/outofcore_base_data.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#include &lt;pcl/filters/filter.h&gt;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#include &lt;pcl/filters/random_sample.h&gt;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#include &lt;pcl/PCLPointCloud2.h&gt;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keyword">namespace </span>pcl</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;{</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  <span class="keyword">namespace </span>outofcore</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  {</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structpcl_1_1outofcore_1_1_outofcore_params.html">   71</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structpcl_1_1outofcore_1_1_outofcore_params.html">OutofcoreParams</a></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;      std::string node_index_basename_;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;      std::string node_container_basename_;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;      std::string node_index_extension_;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;      std::string node_container_extension_;</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      <span class="keywordtype">double</span> sample_percent;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    };</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    </div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> ContainerT = OutofcoreOctreeDiskContainer&lt;pcl::Po<span class="keywordtype">int</span>XYZ&gt;, <span class="keyword">typename</span> Po<span class="keywordtype">int</span>T = pcl::Po<span class="keywordtype">int</span>XYZ&gt;</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">  149</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;      <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt;ContainerT, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&gt;;</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;      <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpcl_1_1outofcore_1_1_outofcore_iterator_base.html">pcl::outofcore::OutofcoreIteratorBase</a>&lt;<a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT&gt;;</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;      <span class="keyword">public</span>:</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="comment">// public typedefs</span></div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase&lt;OutofcoreOctreeDiskContainer&lt;PointT&gt;</a>, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">octree_disk</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode&lt;OutofcoreOctreeDiskContainer&lt;PointT&gt;</a>, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">octree_disk_node</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase&lt;OutofcoreOctreeRamContainer&lt;PointT&gt;</a>, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&gt; <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">octree_ram</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode&lt;OutofcoreOctreeRamContainer&lt;PointT&gt;</a>, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&gt; <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">octree_ram_node</a>;</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">BranchNode</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">LeafNode</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">Iterator</a>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">ConstIterator</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">OutofcoreBreadthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">BreadthFirstIterator</a>;</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">OutofcoreBreadthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">BreadthFirstConstIterator</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">DepthFirstIterator</a>;</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator&lt;PointT, ContainerT&gt;</a> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">DepthFirstConstIterator</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;OutofcoreOctreeBase&lt;ContainerT, PointT&gt; &gt; Ptr;</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;const OutofcoreOctreeBase&lt;ContainerT, PointT&gt; &gt; ConstPtr;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="keyword">typedef</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;PointT&gt;</a> <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud</a>;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;std::vector&lt;int&gt; &gt; IndicesPtr;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;const std::vector&lt;int&gt; &gt; IndicesConstPtr;</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;PointCloud&gt; PointCloudPtr;</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keyword">typedef</span> boost::shared_ptr&lt;const PointCloud&gt; PointCloudConstPtr;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keyword">typedef</span> std::vector&lt;PointT, Eigen::aligned_allocator&lt;PointT&gt; &gt; AlignedPointTVector;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">// Constructors</span></div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (<span class="keyword">const</span> boost::filesystem::path &amp;root_node_name, <span class="keyword">const</span> <span class="keywordtype">bool</span> load_all);</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (<span class="keyword">const</span> Eigen::Vector3d&amp; min, <span class="keyword">const</span> Eigen::Vector3d&amp; max, <span class="keyword">const</span> <span class="keywordtype">double</span> resolution_arg, <span class="keyword">const</span> boost::filesystem::path &amp;root_node_name, <span class="keyword">const</span> std::string &amp;coord_sys);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (<span class="keyword">const</span> boost::uint64_t max_depth, <span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> boost::filesystem::path &amp;root_node_name, <span class="keyword">const</span> std::string &amp;coord_sys);</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <span class="keyword">virtual</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        ~<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> ();</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="comment">// Point/Region INSERTION methods</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="comment">// --------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment"></span>        boost::uint64_t</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">addDataToLeaf</a> (<span class="keyword">const</span> AlignedPointTVector &amp;p);</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">addPointCloud</a> (PointCloudConstPtr point_cloud);</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">addPointCloud</a> (pcl::PCLPointCloud2::Ptr &amp;input_cloud, <span class="keyword">const</span> <span class="keywordtype">bool</span> skip_bb_check = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa529ccd903769b78d419ea8c12a62b93">addPointCloud_and_genLOD</a> (pcl::PCLPointCloud2::Ptr &amp;input_cloud);</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">addPointCloud</a> (pcl::PCLPointCloud2::Ptr &amp;input_cloud);</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        </div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa529ccd903769b78d419ea8c12a62b93">addPointCloud_and_genLOD</a> (PointCloudConstPtr point_cloud);</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae45a9210229dff9276e79796147b941c">addDataToLeaf_and_genLOD</a> (AlignedPointTVector &amp;p);</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="comment">// Frustrum/Box/Region REQUESTS/QUERIES: DB Accessors</span></div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        queryFrustum (<span class="keyword">const</span> <span class="keywordtype">double</span> *planes, std::list&lt;std::string&gt;&amp; file_names) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;          <span class="keywordtype">void</span></div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        queryFrustum (<span class="keyword">const</span> <span class="keywordtype">double</span> *planes, std::list&lt;std::string&gt;&amp; file_names, <span class="keyword">const</span> boost::uint32_t query_depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;          <span class="keywordtype">void</span></div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        queryFrustum (<span class="keyword">const</span> <span class="keywordtype">double</span> *planes, <span class="keyword">const</span> Eigen::Vector3d &amp;eye, <span class="keyword">const</span> Eigen::Matrix4d &amp;view_projection_matrix,</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                      std::list&lt;std::string&gt;&amp; file_names, <span class="keyword">const</span> boost::uint32_t query_depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        </div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="comment">//--------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="comment">//templated PointT methods</span></div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="comment">//--------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#add153493b87d05fe3056c915af660e09">queryBBIntersects</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> boost::uint32_t query_depth, std::list&lt;std::string&gt; &amp;bin_name) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a28a9432ba893f51f530216d0fb9493f0">queryBBIncludes</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> boost::uint64_t query_depth, AlignedPointTVector &amp;dst) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a28a9432ba893f51f530216d0fb9493f0">queryBBIncludes</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> boost::uint64_t query_depth, <span class="keyword">const</span> pcl::PCLPointCloud2::Ptr &amp;dst_blob) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        </div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aaf494098c2abc44725cfe5e9210e2bf0">queryBBIncludes_subsample</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, uint64_t query_depth, <span class="keyword">const</span> <span class="keywordtype">double</span> percent, AlignedPointTVector &amp;dst) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="comment">//--------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="comment">//PCLPointCloud2 methods</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="comment">//--------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160; </div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a78e22dfa93a11f383e9bf878801f17c7">queryBoundingBox</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> <span class="keywordtype">int</span> query_depth, <span class="keyword">const</span> pcl::PCLPointCloud2::Ptr &amp;dst_blob, <span class="keywordtype">double</span> percent = 1.0);</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        </div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a0fb902b66afb9706cf028f52b690296e">  382</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a0fb902b66afb9706cf028f52b690296e">queryBoundingBox</a> (<span class="keyword">const</span> Eigen::Vector3d &amp;min, <span class="keyword">const</span> Eigen::Vector3d &amp;max, <span class="keyword">const</span> <span class="keywordtype">int</span> query_depth, std::list&lt;std::string&gt; &amp;filenames)<span class="keyword"> const</span></div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;          boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;          filenames.clear ();</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a30cabf53c79e7ced285f6071c0a0e4f4">queryBBIntersects</a> (min, max, query_depth, filenames);</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        }</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="comment">// Parameterization: getters and setters</span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="comment">// --------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">getBoundingBox</a> (Eigen::Vector3d &amp;min, Eigen::Vector3d &amp;max) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">inline</span> boost::uint64_t</div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a476f3c09a27835491ee41343d164a7a3">  405</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a476f3c09a27835491ee41343d164a7a3">getNumPointsAtDepth</a> (<span class="keyword">const</span> boost::uint64_t&amp; depth_index)<span class="keyword"> const</span></div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getLODPoints (depth_index));</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        }</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a869371c4f7867438093f010d140e7610">  419</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a869371c4f7867438093f010d140e7610">queryBoundingBoxNumPoints</a> (<span class="keyword">const</span> Eigen::Vector3d&amp; min, <span class="keyword">const</span> Eigen::Vector3d&amp; max, <span class="keyword">const</span> <span class="keywordtype">int</span> query_depth, <span class="keywordtype">bool</span> load_from_disk = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        </div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <span class="keyword">inline</span> <span class="keyword">const</span> std::vector&lt;boost::uint64_t&gt;&amp;</div>
<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a548be9c74c1c6f514c02d560893f94a5">  426</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a548be9c74c1c6f514c02d560893f94a5">getNumPointsVector</a> ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getLODPoints ());</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        }</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <span class="keyword">inline</span> boost::uint64_t</div>
<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a3f79123ee56bd995540a7bbc56da33a6">  434</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a3f79123ee56bd995540a7bbc56da33a6">getDepth</a> ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        }</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160; </div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        <span class="keyword">inline</span> boost::uint64_t</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        getTreeDepth ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;          <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a3f79123ee56bd995540a7bbc56da33a6">getDepth</a> ());</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        }</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a85c71b6e26801a60d735e8e02810ddd5">getBinDimension</a> (<span class="keywordtype">double</span> &amp;x, <span class="keywordtype">double</span> &amp;y) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <span class="keywordtype">double</span></div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">getVoxelSideLength</a> (<span class="keyword">const</span> boost::uint64_t&amp; depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160; </div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <span class="keywordtype">double</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">  461</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">getVoxelSideLength</a> ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;          <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">getVoxelSideLength</a> (metadata_-&gt;getDepth ()));</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        }</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <span class="keyword">const</span> std::string&amp;</div>
<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5ad80ae18b2a77a25c4562da556813a5">  469</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5ad80ae18b2a77a25c4562da556813a5">getCoordSystem</a> ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getCoordinateSystem ());</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        }</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <span class="comment">// Mutators</span></div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a584cd23262207c96c2dd9f7479c1ec09">buildLOD</a> ();</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">printBoundingBox</a> (<span class="keyword">const</span> <span class="keywordtype">size_t</span> query_depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ac3b246a0a9e89d165539526082a89a69">  489</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ac3b246a0a9e89d165539526082a89a69">printBoundingBox</a> (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a>&amp; node) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">  494</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">printBoundingBox</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">printBoundingBox</a> (metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        }</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a>(AlignedPointTVector &amp;voxel_centers, <span class="keywordtype">size_t</span> query_depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a>(std::vector&lt;Eigen::Vector3d, Eigen::aligned_allocator&lt;Eigen::Vector3d&gt; &gt; &amp;voxel_centers, <span class="keywordtype">size_t</span> query_depth) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160; </div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab8aa7026f1efb0ec60cf4fc68cb2dc73">  515</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab8aa7026f1efb0ec60cf4fc68cb2dc73">getOccupiedVoxelCenters</a>(AlignedPointTVector &amp;voxel_centers)<span class="keyword"> const</span></div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;          <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a>(voxel_centers, metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        }</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160; </div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aee6b0d199c7592c667ff52b877cb3546">  524</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aee6b0d199c7592c667ff52b877cb3546">getOccupiedVoxelCenters</a>(std::vector&lt;Eigen::Vector3d, Eigen::aligned_allocator&lt;Eigen::Vector3d&gt; &gt; &amp;voxel_centers)<span class="keyword"> const</span></div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;          <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a>(voxel_centers, metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        }</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160; </div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="comment">// Serializers</span></div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160; </div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a486d577a151fc9d239ce0c5847404857">convertToXYZ</a> ();</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160; </div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5e45f536c703b713034fb558ffb120a8">writeVPythonVisual</a> (<span class="keyword">const</span> boost::filesystem::path filename);</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160; </div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        OutofcoreNodeType*</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        getBranchChildPtr (<span class="keyword">const</span> BranchNode&amp; branch_arg, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> childIdx_arg) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160; </div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <a class="code" href="classpcl_1_1_filter.html">pcl::Filter&lt;pcl::PCLPointCloud2&gt;::Ptr</a></div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        getLODFilter ();</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160; </div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        <span class="keyword">const</span> <a class="code" href="classpcl_1_1_filter.html">pcl::Filter&lt;pcl::PCLPointCloud2&gt;::ConstPtr</a></div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        getLODFilter () <span class="keyword">const</span>;</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160; </div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae9c467ba6aef4639fc870bb78d5585ce">setLODFilter</a> (<span class="keyword">const</span> <a class="code" href="classpcl_1_1_filter.html">pcl::Filter&lt;pcl::PCLPointCloud2&gt;::Ptr</a>&amp; filter_arg);</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160; </div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        <span class="keywordtype">double</span> </div>
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae23706d3a2e2fdd67abb3bb71ea28809">  556</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae23706d3a2e2fdd67abb3bb71ea28809">getSamplePercent</a> ()<span class="keyword"> const</span></div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="keyword">        </span>{</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;          <span class="keywordflow">return</span> (sample_percent_);</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        }</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        </div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad252ba0d14389fc15ebbb1325c478598">  564</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad252ba0d14389fc15ebbb1325c478598">setSamplePercent</a> (<span class="keyword">const</span> <span class="keywordtype">double</span> sample_percent_arg)</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        {</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;          this-&gt;sample_percent_ = std::fabs (sample_percent_arg) &gt; 1.0 ? 1.0 : std::fabs (sample_percent_arg);</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        }</div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    </div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;      <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        init (<span class="keyword">const</span> boost::uint64_t&amp; depth, <span class="keyword">const</span> Eigen::Vector3d&amp; min, <span class="keyword">const</span> Eigen::Vector3d&amp; max, <span class="keyword">const</span> boost::filesystem::path&amp; root_name, <span class="keyword">const</span> std::string&amp; coord_sys);</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160; </div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval);</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (<span class="keyword">const</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval);</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; </div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&amp;</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        operator= (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval);</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160; </div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&amp;</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        operator= (<span class="keyword">const</span> <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval);</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        <span class="keyword">inline</span> OutofcoreNodeType*</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        getRootNode ()</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        {</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;          <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>);</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        }</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160; </div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a326cc74e7e04a1894f61c6d7892fc563">  591</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a326cc74e7e04a1894f61c6d7892fc563">DeAllocEmptyNodeCache</a> (OutofcoreNodeType* current);</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160; </div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad68edd845380ab62afecead45d63e84c">saveToFile</a> ();</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa9a1b79193cb7b3313b5c5a4cabae515">buildLODRecursive</a> (<span class="keyword">const</span> std::vector&lt;BranchNode*&gt;&amp; current_branch);</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160; </div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad947ba219d7372986f74557f90d57f9d">incrementPointsInLOD</a> (boost::uint64_t depth, boost::uint64_t inc);</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">checkExtension</a> (<span class="keyword">const</span> boost::filesystem::path&amp; path_name);</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160; </div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160; </div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a96b5cd1cd503b45587ace58f25261d66">flushToDisk</a> ();</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160; </div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a775eca5a56a0386a96a34f6ca11b1b04">flushToDiskLazy</a> ();</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160; </div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">DeAllocEmptyNodeCache</a> ();</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; </div>
<div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">  633</a></span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a>* <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>;</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160; </div>
<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">  636</a></span>&#160;        <span class="keyword">mutable</span> boost::shared_mutex <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>;</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; </div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        boost::shared_ptr&lt;OutofcoreOctreeBaseMetadata&gt; metadata_;</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        </div>
<div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">  643</a></span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> std::string <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">TREE_EXTENSION_</a>;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">int</span> OUTOFCORE_VERSION_;</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; </div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> uint64_t LOAD_COUNT_ = <span class="keyword">static_cast&lt;</span>uint64_t<span class="keyword">&gt;</span>(2e9);</div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160; </div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;      <span class="keyword">private</span>:    </div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160; </div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordtype">void</span></div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad6a7ce11ab3f3b52d0b43cf936e28cf1">enlargeToCube</a> (Eigen::Vector3d &amp;bb_min, Eigen::Vector3d &amp;bb_max);</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160; </div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        boost::uint64_t</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae79f800d8cf85af8c175eef668e773a6">calculateDepth</a> (<span class="keyword">const</span> Eigen::Vector3d&amp; min_bb, <span class="keyword">const</span> Eigen::Vector3d&amp; max_bb, <span class="keyword">const</span> <span class="keywordtype">double</span> leaf_resolution);</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160; </div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;        <span class="keywordtype">double</span> sample_percent_;</div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160; </div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <a class="code" href="classpcl_1_1_random_sample.html">pcl::RandomSample&lt;pcl::PCLPointCloud2&gt;::Ptr</a> lod_filter_ptr_;</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        </div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    };</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  }</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;}</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160; </div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  </div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// PCL_OUTOFCORE_OUTOFCOREOCTREEBASE_H_</span></div>
<div class="ttc" id="aclasspcl_1_1_filter_html"><div class="ttname"><a href="classpcl_1_1_filter.html">pcl::Filter</a></div><div class="ttdoc">Filter represents the base filter class. All filters must inherit from this interface.</div><div class="ttdef"><b>Definition:</b> filter.h:85</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a></div><div class="ttdoc">PointCloud represents the base class in PCL for storing collections of 3D points.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:173</div></div>
<div class="ttc" id="aclasspcl_1_1_random_sample_html"><div class="ttname"><a href="classpcl_1_1_random_sample.html">pcl::RandomSample</a></div><div class="ttdoc">RandomSample applies a random sampling with uniform probability. Based off Algorithm A from the paper...</div><div class="ttdef"><b>Definition:</b> random_sample.h:57</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_breadth_first_iterator_html"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">pcl::outofcore::OutofcoreBreadthFirstIterator</a></div><div class="ttdef"><b>Definition:</b> outofcore_breadth_first_iterator.h:56</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_depth_first_iterator_html"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">pcl::outofcore::OutofcoreDepthFirstIterator</a></div><div class="ttdef"><b>Definition:</b> outofcore_depth_first_iterator.h:55</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_iterator_base_html"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_iterator_base.html">pcl::outofcore::OutofcoreIteratorBase</a></div><div class="ttdoc">Abstract octree iterator class</div><div class="ttdef"><b>Definition:</b> outofcore_iterator_base.h:65</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a></div><div class="ttdoc">This code defines the octree used for point storage at Urban Robotics.</div><div class="ttdef"><b>Definition:</b> octree_base.h:150</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a010534fb915cc90f68375bc4bc49ce51"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">pcl::outofcore::OutofcoreOctreeBase::DeAllocEmptyNodeCache</a></div><div class="ttdeci">void DeAllocEmptyNodeCache()</div><div class="ttdoc">DEPRECATED - Flush empty nodes only</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:470</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a0fb902b66afb9706cf028f52b690296e"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a0fb902b66afb9706cf028f52b690296e">pcl::outofcore::OutofcoreOctreeBase::queryBoundingBox</a></div><div class="ttdeci">virtual void queryBoundingBox(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, std::list&lt; std::string &gt; &amp;filenames) const</div><div class="ttdoc">Returns list of pcd files from nodes whose bounding boxes intersect with the input bounding box.</div><div class="ttdef"><b>Definition:</b> octree_base.h:382</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a28a9432ba893f51f530216d0fb9493f0"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a28a9432ba893f51f530216d0fb9493f0">pcl::outofcore::OutofcoreOctreeBase::queryBBIncludes</a></div><div class="ttdeci">void queryBBIncludes(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::uint64_t query_depth, AlignedPointTVector &amp;dst) const</div><div class="ttdoc">Get Points in BB, only points inside BB. The query processes the data at each node,...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:313</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a326cc74e7e04a1894f61c6d7892fc563"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a326cc74e7e04a1894f61c6d7892fc563">pcl::outofcore::OutofcoreOctreeBase::DeAllocEmptyNodeCache</a></div><div class="ttdeci">void DeAllocEmptyNodeCache(OutofcoreNodeType *current)</div><div class="ttdoc">flush empty nodes only</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a371cfa9f74bc5c39baa2e84896e5198a"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">pcl::outofcore::OutofcoreOctreeBase::read_write_mutex_</a></div><div class="ttdeci">boost::shared_mutex read_write_mutex_</div><div class="ttdoc">shared mutex for controlling read/write access to disk</div><div class="ttdef"><b>Definition:</b> octree_base.h:636</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a3f79123ee56bd995540a7bbc56da33a6"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a3f79123ee56bd995540a7bbc56da33a6">pcl::outofcore::OutofcoreOctreeBase::getDepth</a></div><div class="ttdeci">boost::uint64_t getDepth() const</div><div class="ttdoc">Get number of LODs, which is the height of the tree</div><div class="ttdef"><b>Definition:</b> octree_base.h:434</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a476f3c09a27835491ee41343d164a7a3"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a476f3c09a27835491ee41343d164a7a3">pcl::outofcore::OutofcoreOctreeBase::getNumPointsAtDepth</a></div><div class="ttdeci">boost::uint64_t getNumPointsAtDepth(const boost::uint64_t &amp;depth_index) const</div><div class="ttdoc">Get number of points at specified LOD</div><div class="ttdef"><b>Definition:</b> octree_base.h:405</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a486d577a151fc9d239ce0c5847404857"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a486d577a151fc9d239ce0c5847404857">pcl::outofcore::OutofcoreOctreeBase::convertToXYZ</a></div><div class="ttdeci">void convertToXYZ()</div><div class="ttdoc">Save each .bin file as an XYZ file</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:461</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a5179d99711863596f23e95f6fb5d8e43"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">pcl::outofcore::OutofcoreOctreeBase::OutofcoreOctreeBase</a></div><div class="ttdeci">OutofcoreOctreeBase(const boost::filesystem::path &amp;root_node_name, const bool load_all)</div><div class="ttdoc">Load an existing tree</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:77</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a548be9c74c1c6f514c02d560893f94a5"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a548be9c74c1c6f514c02d560893f94a5">pcl::outofcore::OutofcoreOctreeBase::getNumPointsVector</a></div><div class="ttdeci">const std::vector&lt; boost::uint64_t &gt; &amp; getNumPointsVector() const</div><div class="ttdoc">Get number of points at each LOD</div><div class="ttdef"><b>Definition:</b> octree_base.h:426</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a584cd23262207c96c2dd9f7479c1ec09"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a584cd23262207c96c2dd9f7479c1ec09">pcl::outofcore::OutofcoreOctreeBase::buildLOD</a></div><div class="ttdeci">void buildLOD()</div><div class="ttdoc">Generate multi-resolution LODs for the tree, which are a uniform random sampling all child leafs belo...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:560</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a5ad80ae18b2a77a25c4562da556813a5"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5ad80ae18b2a77a25c4562da556813a5">pcl::outofcore::OutofcoreOctreeBase::getCoordSystem</a></div><div class="ttdeci">const std::string &amp; getCoordSystem() const</div><div class="ttdoc">Get coordinate system tag from the JSON metadata file</div><div class="ttdef"><b>Definition:</b> octree_base.h:469</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a5e45f536c703b713034fb558ffb120a8"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5e45f536c703b713034fb558ffb120a8">pcl::outofcore::OutofcoreOctreeBase::writeVPythonVisual</a></div><div class="ttdeci">void writeVPythonVisual(const boost::filesystem::path filename)</div><div class="ttdoc">Write a python script using the vpython module containing all the bounding boxes</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:433</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a6fc174b7881c9398c29c3f475c8f859d"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">pcl::outofcore::OutofcoreOctreeBase::getBoundingBox</a></div><div class="ttdeci">bool getBoundingBox(Eigen::Vector3d &amp;min, Eigen::Vector3d &amp;max) const</div><div class="ttdoc">Get the overall bounding box of the outofcore octree; this is the same as the bounding box of the roo...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:362</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a7503db4c6b543960b5de57d545cdb9fa"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">pcl::outofcore::OutofcoreOctreeBase::getVoxelSideLength</a></div><div class="ttdeci">double getVoxelSideLength() const</div><div class="ttdoc">Gets the smallest (assumed) cubic voxel side lengths. The smallest voxels are located at the max dept...</div><div class="ttdef"><b>Definition:</b> octree_base.h:461</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a775eca5a56a0386a96a34f6ca11b1b04"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a775eca5a56a0386a96a34f6ca11b1b04">pcl::outofcore::OutofcoreOctreeBase::flushToDiskLazy</a></div><div class="ttdeci">void flushToDiskLazy()</div><div class="ttdoc">DEPRECATED - Flush all non leaf nodes' cache</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:453</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a77fd4203868a748bf8671cba4b328297"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">pcl::outofcore::OutofcoreOctreeBase::getOccupiedVoxelCenters</a></div><div class="ttdeci">void getOccupiedVoxelCenters(AlignedPointTVector &amp;voxel_centers, size_t query_depth) const</div><div class="ttdoc">Returns the voxel centers of all existing voxels at query_depth</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:384</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a78e22dfa93a11f383e9bf878801f17c7"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a78e22dfa93a11f383e9bf878801f17c7">pcl::outofcore::OutofcoreOctreeBase::queryBoundingBox</a></div><div class="ttdeci">virtual void queryBoundingBox(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, const pcl::PCLPointCloud2::Ptr &amp;dst_blob, double percent=1.0)</div><div class="ttdoc">Query all points falling within the input bounding box at query_depth and return a PCLPointCloud2 obj...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:347</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a7ff969ea904c00109ed88879bde8d83c"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">pcl::outofcore::OutofcoreOctreeBase::checkExtension</a></div><div class="ttdeci">bool checkExtension(const boost::filesystem::path &amp;path_name)</div><div class="ttdoc">Auxiliary function to validate path_name extension is .octree</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:698</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a85c71b6e26801a60d735e8e02810ddd5"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a85c71b6e26801a60d735e8e02810ddd5">pcl::outofcore::OutofcoreOctreeBase::getBinDimension</a></div><div class="ttdeci">bool getBinDimension(double &amp;x, double &amp;y) const</div><div class="ttdoc">Computes the expected voxel dimensions at the leaves</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:525</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a869371c4f7867438093f010d140e7610"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a869371c4f7867438093f010d140e7610">pcl::outofcore::OutofcoreOctreeBase::queryBoundingBoxNumPoints</a></div><div class="ttdeci">boost::uint64_t queryBoundingBoxNumPoints(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, bool load_from_disk=true)</div><div class="ttdoc">Queries the number of points in a bounding box</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a96b5cd1cd503b45587ace58f25261d66"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a96b5cd1cd503b45587ace58f25261d66">pcl::outofcore::OutofcoreOctreeBase::flushToDisk</a></div><div class="ttdeci">void flushToDisk()</div><div class="ttdoc">DEPRECATED - Flush all nodes' cache</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:445</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a9d5836dca2e0f777f61382e7bbf82b52"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">pcl::outofcore::OutofcoreOctreeBase::printBoundingBox</a></div><div class="ttdeci">void printBoundingBox() const</div><div class="ttdoc">Prints size of the bounding boxes to stdou</div><div class="ttdef"><b>Definition:</b> octree_base.h:494</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aa529ccd903769b78d419ea8c12a62b93"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa529ccd903769b78d419ea8c12a62b93">pcl::outofcore::OutofcoreOctreeBase::addPointCloud_and_genLOD</a></div><div class="ttdeci">boost::uint64_t addPointCloud_and_genLOD(pcl::PCLPointCloud2::Ptr &amp;input_cloud)</div><div class="ttdoc">Recursively add points to the tree.</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:254</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aa9a1b79193cb7b3313b5c5a4cabae515"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa9a1b79193cb7b3313b5c5a4cabae515">pcl::outofcore::OutofcoreOctreeBase::buildLODRecursive</a></div><div class="ttdeci">void buildLODRecursive(const std::vector&lt; BranchNode * &gt; &amp;current_branch)</div><div class="ttdoc">recursive portion of lod builder</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:592</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aac1a5fb289f9bac470d291f8632e412d"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">pcl::outofcore::OutofcoreOctreeBase::TREE_EXTENSION_</a></div><div class="ttdeci">static const std::string TREE_EXTENSION_</div><div class="ttdoc">defined as &quot;.octree&quot; to append to treepath files</div><div class="ttdef"><b>Definition:</b> octree_base.h:643</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aaf494098c2abc44725cfe5e9210e2bf0"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aaf494098c2abc44725cfe5e9210e2bf0">pcl::outofcore::OutofcoreOctreeBase::queryBBIncludes_subsample</a></div><div class="ttdeci">void queryBBIncludes_subsample(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, uint64_t query_depth, const double percent, AlignedPointTVector &amp;dst) const</div><div class="ttdoc">Returns a random subsample of points within the given bounding box at query_depth.</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:338</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ab8aa7026f1efb0ec60cf4fc68cb2dc73"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab8aa7026f1efb0ec60cf4fc68cb2dc73">pcl::outofcore::OutofcoreOctreeBase::getOccupiedVoxelCenters</a></div><div class="ttdeci">void getOccupiedVoxelCenters(AlignedPointTVector &amp;voxel_centers) const</div><div class="ttdoc">Gets the voxel centers of all occupied/existing leaves of the tree</div><div class="ttdef"><b>Definition:</b> octree_base.h:515</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ab9949de562ff8a27b5f59ded5c66228f"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">pcl::outofcore::OutofcoreOctreeBase::addDataToLeaf</a></div><div class="ttdeci">boost::uint64_t addDataToLeaf(const AlignedPointTVector &amp;p)</div><div class="ttdoc">Recursively add points to the tree</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:208</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ac3b246a0a9e89d165539526082a89a69"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ac3b246a0a9e89d165539526082a89a69">pcl::outofcore::OutofcoreOctreeBase::printBoundingBox</a></div><div class="ttdeci">void printBoundingBox(OutofcoreNodeType &amp;node) const</div><div class="ttdoc">Prints the coordinates of the bounding box of the node to stdout</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ad252ba0d14389fc15ebbb1325c478598"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad252ba0d14389fc15ebbb1325c478598">pcl::outofcore::OutofcoreOctreeBase::setSamplePercent</a></div><div class="ttdeci">void setSamplePercent(const double sample_percent_arg)</div><div class="ttdoc">Sets the sampling percent for constructing LODs. Each LOD gets sample_percent^d points.</div><div class="ttdef"><b>Definition:</b> octree_base.h:564</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ad68edd845380ab62afecead45d63e84c"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad68edd845380ab62afecead45d63e84c">pcl::outofcore::OutofcoreOctreeBase::saveToFile</a></div><div class="ttdeci">void saveToFile()</div><div class="ttdoc">Write octree definition &quot;.octree&quot; (defined by octree_extension_) to disk</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:200</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ad6a7ce11ab3f3b52d0b43cf936e28cf1"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad6a7ce11ab3f3b52d0b43cf936e28cf1">pcl::outofcore::OutofcoreOctreeBase::enlargeToCube</a></div><div class="ttdeci">void enlargeToCube(Eigen::Vector3d &amp;bb_min, Eigen::Vector3d &amp;bb_max)</div><div class="ttdoc">Auxiliary function to enlarge a bounding box to a cube.</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:712</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ad947ba219d7372986f74557f90d57f9d"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad947ba219d7372986f74557f90d57f9d">pcl::outofcore::OutofcoreOctreeBase::incrementPointsInLOD</a></div><div class="ttdeci">void incrementPointsInLOD(boost::uint64_t depth, boost::uint64_t inc)</div><div class="ttdoc">Increment current depths (LOD for branch nodes) point count; called by addDataAtMaxDepth in Outofcore...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:684</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_add153493b87d05fe3056c915af660e09"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#add153493b87d05fe3056c915af660e09">pcl::outofcore::OutofcoreOctreeBase::queryBBIntersects</a></div><div class="ttdeci">void queryBBIntersects(const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::uint32_t query_depth, std::list&lt; std::string &gt; &amp;bin_name) const</div><div class="ttdoc">Get a list of file paths at query_depth that intersect with your bounding box specified by min and ma...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:416</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ae23706d3a2e2fdd67abb3bb71ea28809"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae23706d3a2e2fdd67abb3bb71ea28809">pcl::outofcore::OutofcoreOctreeBase::getSamplePercent</a></div><div class="ttdeci">double getSamplePercent() const</div><div class="ttdoc">Returns the sample_percent_ used when constructing the LOD.</div><div class="ttdef"><b>Definition:</b> octree_base.h:556</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ae45a9210229dff9276e79796147b941c"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae45a9210229dff9276e79796147b941c">pcl::outofcore::OutofcoreOctreeBase::addDataToLeaf_and_genLOD</a></div><div class="ttdeci">boost::uint64_t addDataToLeaf_and_genLOD(AlignedPointTVector &amp;p)</div><div class="ttdoc">Recursively add points to the tree subsampling LODs on the way.</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:270</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ae79f800d8cf85af8c175eef668e773a6"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae79f800d8cf85af8c175eef668e773a6">pcl::outofcore::OutofcoreOctreeBase::calculateDepth</a></div><div class="ttdeci">boost::uint64_t calculateDepth(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, const double leaf_resolution)</div><div class="ttdoc">Auxiliary function to compute the depth of the tree given the bounding box and the desired size of th...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:729</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ae9c467ba6aef4639fc870bb78d5585ce"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae9c467ba6aef4639fc870bb78d5585ce">pcl::outofcore::OutofcoreOctreeBase::setLODFilter</a></div><div class="ttdeci">void setLODFilter(const pcl::Filter&lt; pcl::PCLPointCloud2 &gt;::Ptr &amp;filter_arg)</div><div class="ttdoc">Sets the filter to use when building the levels of depth. Recommended filters are pcl::RandomSample&lt;p...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:517</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aeb7b74e9982817c45349b4bfdc951b69"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">pcl::outofcore::OutofcoreOctreeBase::root_node_</a></div><div class="ttdeci">OutofcoreNodeType * root_node_</div><div class="ttdoc">Pointer to the root node of the octree data structure</div><div class="ttdef"><b>Definition:</b> octree_base.h:633</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aee6b0d199c7592c667ff52b877cb3546"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aee6b0d199c7592c667ff52b877cb3546">pcl::outofcore::OutofcoreOctreeBase::getOccupiedVoxelCenters</a></div><div class="ttdeci">void getOccupiedVoxelCenters(std::vector&lt; Eigen::Vector3d, Eigen::aligned_allocator&lt; Eigen::Vector3d &gt; &gt; &amp;voxel_centers) const</div><div class="ttdoc">Returns the voxel centers of all occupied/existing leaves of the tree</div><div class="ttdef"><b>Definition:</b> octree_base.h:524</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_af9935cc37d3d7a446d73ab14636b5496"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">pcl::outofcore::OutofcoreOctreeBase::addPointCloud</a></div><div class="ttdeci">boost::uint64_t addPointCloud(PointCloudConstPtr point_cloud)</div><div class="ttdoc">Copies the points from the point_cloud falling within the bounding box of the octree to the out-of-co...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:224</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">pcl::outofcore::OutofcoreOctreeBaseNode</a></div><div class="ttdoc">OutofcoreOctreeBaseNode Class internally representing nodes of an outofcore octree,...</div><div class="ttdef"><b>Definition:</b> octree_base_node.h:93</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a30cabf53c79e7ced285f6071c0a0e4f4"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a30cabf53c79e7ced285f6071c0a0e4f4">pcl::outofcore::OutofcoreOctreeBaseNode::queryBBIntersects</a></div><div class="ttdeci">virtual void queryBBIntersects(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, const boost::uint32_t query_depth, std::list&lt; std::string &gt; &amp;file_names)</div><div class="ttdoc">Recursive acquires PCD paths to any node with which the queried bounding box intersects (at query_dep...</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:1353</div></div>
<div class="ttc" id="astructpcl_1_1_point_x_y_z_r_g_b_a_html"><div class="ttname"><a href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a></div><div class="ttdoc">A point structure representing Euclidean xyz coordinates, and the RGBA color.</div><div class="ttdef"><b>Definition:</b> point_types.hpp:540</div></div>
<div class="ttc" id="astructpcl_1_1outofcore_1_1_outofcore_params_html"><div class="ttname"><a href="structpcl_1_1outofcore_1_1_outofcore_params.html">pcl::outofcore::OutofcoreParams</a></div><div class="ttdef"><b>Definition:</b> octree_base.h:72</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_2e3f8fccb26eb21d69508a4e9567ba76.html">outofcore</a></li><li class="navelem"><a class="el" href="dir_87426fb8f69ee703d182f5a876427625.html">include</a></li><li class="navelem"><a class="el" href="dir_a1b786781392adb010bba29d73db886e.html">pcl</a></li><li class="navelem"><a class="el" href="dir_bd1aec8c37d6c565fde3012cc8be891d.html">outofcore</a></li><li class="navelem"><b>octree_base.h</b></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
